package com.cj.image.mapper;

import com.cj.image.bean.TagInfo;
import com.cj.image.bean.TaskInfoBean;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface TaskInfoMapper {
    /**
     * 通过 taskStatus 查询任务列表
     *
     * @param taskStatus 任务状态
     * @return 符合条件的任务列表
     */
    @Select("SELECT id, task_status AS taskStatus FROM task_info WHERE task_status = #{taskStatus}")
    List<TaskInfoBean> selectByStatus(@Param("taskStatus") String taskStatus);

    /**
     * 插入任务并返回完整的 TaskInfoBean（包含生成的 id）
     *
     * @param taskInfoBean 任务信息
     * @return 插入后的任务信息（包含 id）
     */
    @Insert("INSERT INTO task_info(task_status) VALUES(#{taskStatus})")
    @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
    @SelectKey(statement = "SELECT LAST_INSERT_ID()", keyProperty = "id", before = false, resultType = Long.class)
    int insertTaskInfo(TaskInfoBean taskInfoBean);

    /**
     * 通过 TaskInfoBean 更新任务信息
     *
     * @param taskInfoBean 任务信息
     * @return 更新的记录数
     */
    @Update("UPDATE task_info SET task_status = #{taskStatus} WHERE id = #{id}")
    int updateTaskInfo(TaskInfoBean taskInfoBean);
}
